package com.carrot.system.service;

import com.carrot.common.core.domain.dto.SysStationDto;
import com.carrot.common.core.domain.entity.SysStation;
import com.carrot.common.mybatis.IBaseService;

import java.util.List;
import java.util.Map;

/**
 * 场站 业务层
 *
 * @author liuhongzhen
 */
public interface ISysStationService extends IBaseService<SysStation> {

  /**
   * 通过场站ID查询场站
   *
   * @param stationId 场站ID
   * @return 场站对象信息
   */
  SysStation selectStationByStationId(String stationId);

  /**
   * 校验场站名称是否唯一
   *
   * @param station 场站信息
   * @return 结果
   */
  boolean checkStationNameUnique(SysStation station);

    /**
     * 校验场站Id是否唯一
     *
     * @param station 场站信息
     * @return 结果
     */
    boolean checkStationIdUnique(SysStation station);

  /**
   * 新增场站信息
   *
   * @param station 场站信息
   * @return 结果
   */
  int insertStation(SysStation station);

  /**
   * 修改场站信息
   *
   * @param station 场站信息
   * @return 结果
   */
  int updateStation(SysStation station);

  /**
   * 通过场站ID删除场站
   *
   * @param id 场站ID
   * @return 结果
   */
  int deleteStationById(Long id);

  /**
   * 批量删除场站信息
   *
   * @param stationIds 需要删除的场站ID
   * @return 结果
   */
  int deleteStationByIds(List<Long> stationIds);

  /**
   * 更改状态
   * @param dto
   */
  void changeStatus(SysStationDto dto);

  /**
   * 单体和电池组的映射
   * @param stationId
   * @return
   */
  Map<Integer,Integer> getCellPackMap(String stationId);
}
